home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #2
/
Monster Media No. 2 (Monster Media)(1994).ISO
/
pcboard
/
scrol11e.zip
/
SCROLL.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-07-11
|
4KB
|
261 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer TINTEGER015(6)
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
;------------------------------------------------------------------------------
STRING008 = TokenStr()
Tokenize STRING008
INTEGER009 = 1
KbdChkOff
STRING009 = "@X8F@X0F"
While (TokCount() > 0) Do
TINTEGER015(INTEGER009) = GetToken()
Inc INTEGER009
EndWhile
INTEGER001 = TINTEGER015(1)
INTEGER016 = TINTEGER015(2)
INTEGER019 = TINTEGER015(3)
STRING005 = TINTEGER015(4)
INTEGER023 = TINTEGER015(5)
INTEGER024 = TINTEGER015(6)
If (INTEGER024 == "") INTEGER024 = 15
If (INTEGER023 == "") INTEGER023 = 4
If (STRING005 < 5) STRING005 = 5
STRING010 = ReadLine(PPEPath() + PPEName() + ".CNF", 1)
INTEGER020 = ReadLine(PPEPath() + PPEName() + ".CNF", 2)
STRING002 = ReadLine(PPEPath() + PPEName() + ".CNF", 3)
STRING003 = ReadLine(PPEPath() + PPEName() + ".CNF", 4)
STRING001 = ReadLine(PPEPath() + PPEName() + ".CNF", STRING005)
STRING012 = ReadLine(PCBDat(), 94)
STRING011 = " ■ Unregistred Version Of Scroll 1.1 ■ "
INTEGER022 = Len(STRING010)
INTEGER021 = (INTEGER022 + 22) * (INTEGER022 * INTEGER022) + 24354 - INTEGER022 - INTEGER022
If (STRING010 <> STRING012) Then
STRING001 = STRING001 + STRING011
Else
If (INTEGER021 <> INTEGER020) STRING001 = STRING001 + STRING011
Endif
INTEGER004 = Len(STRING002)
INTEGER005 = Len(STRING003)
If ((INTEGER004 + INTEGER005 < 40) && (INTEGER004 + INTEGER005 > 30)) INTEGER006 = 40
If ((INTEGER004 + INTEGER005 < 30) && (INTEGER004 + INTEGER005 > 20)) INTEGER006 = 50
If ((INTEGER004 + INTEGER005 < 20) && (INTEGER004 + INTEGER005 > 0)) INTEGER006 = 60
If (INTEGER004 + INTEGER005 > 41) Goto LABEL002
INTEGER014 = Len(STRING001)
INTEGER002 = (80 - INTEGER006 - INTEGER004 + INTEGER005) / 2
INTEGER007 = INTEGER002 + INTEGER004
INTEGER003 = INTEGER007 + INTEGER006 + 1
INTEGER008 = INTEGER003 - 1
AnsiPos 1, INTEGER016
DispText INTEGER019, 4
Print " ? "
INTEGER017 = GetX()
INTEGER018 = GetY()
Print STRING009
AnsiPos INTEGER002, INTEGER001
Print "@X0C", STRING002
AnsiPos INTEGER003, INTEGER001
Print "@X0C", STRING003
INTEGER009 = 0
INTEGER012 = 1
INTEGER010 = INTEGER008
While (INTEGER010 >= INTEGER007) Do
AnsiPos INTEGER010, INTEGER001
Color INTEGER024
Print Mid(STRING001, INTEGER009, INTEGER012)
Inc INTEGER012
Dec INTEGER010
Delay INTEGER023
Gosub LABEL001
EndWhile
INTEGER009 = 2
INTEGER010 = INTEGER006
INTEGER011 = 1
STRING004 = Inkey()
While (STRING004 <> Chr(13)) Do
If (INTEGER009 + INTEGER012 <= INTEGER014 + 1) Then
INTEGER013 = 1
INTEGER011 = 1
AnsiPos INTEGER007, INTEGER001
Print Mid(STRING001, INTEGER009, INTEGER012)
Inc INTEGER009
Else
AnsiPos INTEGER007, INTEGER001
Print Mid(STRING001, INTEGER009 + 1, INTEGER012 - INTEGER011)
Inc INTEGER011
If (INTEGER009 < INTEGER014) Then
Inc INTEGER009
Else
INTEGER009 = 1
Endif
Print Mid(STRING001, 0, INTEGER013)
Inc INTEGER013
Endif
Delay INTEGER023
Gosub LABEL001
EndWhile
End
:LABEL001
STRING004 = Inkey()
If (STRING004 == "") Return
AnsiPos INTEGER017, INTEGER018
STRING006 = Len(STRING007)
If (STRING004 == Chr(8)) Then
ClrEol
STRING007 = Mid(STRING007, 1, STRING006 - 1)
Endif
If (STRING004 <> Chr(8)) Then
STRING007 = STRING007 + STRING004
Endif
If ((STRING007 == "") && (STRING004 == Chr(13))) Return
Print STRING007 + STRING009
If (STRING004 == Chr(13)) Then
ClrEol
KbdString STRING007
KbdChkOn
End
Endif
Return
:LABEL002
Cls
PrintLn "The length of the start and the ending block is bigger"
PrintLn "than 41. Can't execute PPE !"
PrintLn "Please read the File SCROLLER.DOC"
STRING004 = Inkey()
While (STRING004 <> Chr(13)) Do
EndWhile
Cls
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 2 Cls
; 2 ClrEol
; 1 Color
; 18 Goto
; 51 Let
; 9 Print
; 3 PrintLn
; 20 If
; 2 Gosub
; 3 Return
; 2 Delay
; 6 Inc
; 1 Dec
; 1 Tokenize
; 1 DispText
; 1 KbdChkOn
; 1 KbdChkOff
; 7 AnsiPos
; 1 KbdString
;
;
; ■ Functions used :
;
; 2 *
; 1 /
; 30 +
; 7 -
; 7 ==
; 5 <>
; 5 <
; 1 <=
; 5 >
; 1 >=
; 10 !
; 4 &&
; 5 Len(
; 5 Mid()
; 6 Chr()
; 3 Inkey()
; 1 PCBDat()
; 5 PPEPath()
; 6 ReadLine()
; 1 GetToken()
; 1 TokenStr()
; 1 GetX()
; 1 GetY()
; 5 PPEName()
; 1 TokCount()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 4 While/EndWhile
; 6 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------